Micron Document
NexusPi Git Node

Commit a326476445dd37043b3b7d8f073c193e1d64bdd6


Parents : e690823
Author : James L <jrl290@gmail.com>
Date : 2026-05-25T00:11:07-04:00

Update RTNode Heltec V4 docs and assets

Changes
Diff

diff --git a/.gitignore b/.gitignore
index 3cbe125..21bb6b0 100755
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,8 @@ rtnode_heltec_v3.bin
Release/*.hex
Release/*.zip
Release/*.json
+rtnode_firmware.zip
+rtnode_heltec_v*_app.bin
# Pre-built firmware artifacts are no longer committed — firmware ships as a
# release archive (rtnode_firmware.zip). Build components live in .pio/build/.
Release/*.bin
@@ -22,6 +24,22 @@ Release/*.bin
# Place it at Release/esptool/esptool (macOS/Linux) or Release/esptool/esptool.exe (Windows).
Release/esptool/esptool
Release/esptool/esptool.exe
+
+# Generated proof/flood harness runtime state
+tests/filter_stress_lora_flood*/
+tests/filter_stress_rtnode_serial*.log
+tests/harness_*/
+tests/proof_probe_filter_*/
+tests/proof_probe_lan_tcp_to_tcp/
+tests/proof_probe_lan_tcp_to_tcp_ip/
+tests/proof_probe_*_rtnode_serial.log
+tests/proof_probe_mixed_lora_to_tcp/
+tests/proof_probe_mixed_tcp_to_lora/
+tests/proof_probe_state/
+tests/proof_probe_v*_client/
+tests/proof_probe_v*_server/
+tests/rnsd_v*/
+
Console/build
build/*
.pio/*

diff --git a/CORE_PRINCIPLES.md b/CORE_PRINCIPLES.md
new file mode 100644
index 0000000..91165be
--- /dev/null
+++ b/CORE_PRINCIPLES.md
@@ -0,0 +1,57 @@
+# Core Principles
+
+## FIREWALL_MODE Boundary Transport
+
+The key to allowing transport to work reliably on the ESP32 is that all WAN traffic, meaning backbone-side traffic, must be filtered immediately at the point of reception. This is the purpose of `FIREWALL_MODE`.
+
+The ESP32 cannot safely accept arbitrary backbone traffic and then decide later whether it should be retained, cached, routed, rebroadcast, or processed. Unfiltered WAN traffic can exhaust internal heap, flood transport state, trigger LoRa rebroadcast storms, and cause watchdog resets. The boundary firewall must therefore make a fast accept-or-drop decision before normal transport processing.
+
+## Required Whitelists
+
+`FIREWALL_MODE` must maintain two boundary whitelists:
+
+1. LAN device addresses
+
+ Every address belonging to a device observed on the LAN side must be remembered. These are local-side identities, destinations, link identifiers, and other packet addresses that identify LAN-originating devices or flows.
+
+2. LAN-mentioned addresses
+
+ Every address referred to by a LAN-side device must be remembered. If a LAN device sends, requests, proves, links to, or otherwise references an address, that address is considered relevant to LAN traffic and may be allowed back through the boundary.
+
+Together, these whitelists define the only WAN-side traffic that is allowed to enter normal transport handling.
+
+## WAN-Side Rule
+
+Every packet received from the WAN or backbone side must be inspected immediately.
+
+If the packet does not contain an address from either boundary whitelist, it must be deleted at reception and must not continue into transport processing.
+
+This applies before the packet can populate routing tables, path tables, announce tables, packet hash lists, caches, link state, receipt state, or outbound queues.
+
+Backbone announces require special care. They must not be accepted merely because they are announces. In boundary mode, unsolicited WAN announces are hostile to stability unless they are a directly solicited response to LAN-originating discovery and are addressed to this transport instance.
+
+## LAN-Side Rule
+
+All packets that originate from the LAN side are trusted to pass freely through all configured interfaces.
+
+LAN-originating traffic is what teaches the boundary firewall what is relevant. As LAN packets pass through the system, the firewall must update both boundary whitelists so that valid return traffic from the WAN side can be admitted later.
+
+LAN-side packets should not be blocked just because they reference unknown addresses. Instead, those references are the signal used to permit corresponding WAN-side return traffic.
+
+LAN-side trust applies to endpoint traffic. A LAN-connected Reticulum node that is itself running transport mode can relay WAN-scale announces and routed packets into the boundary node through the LAN interface. That traffic must be treated as a topology hazard, even if it arrives on a local TCP connection, because it can recreate the same unbounded routing workload that `MODE_BOUNDARY` is designed to prevent on the WAN side.
+
+Local TCP clients should therefore be configured as clients/endpoints, not transport nodes, unless the firmware has an explicit policy for bounded LAN-side transport peers.
+
+## Implementation Contract
+
+In `FIREWALL_MODE`, the transport layer must preserve these invariants:
+
+- WAN packets are filtered before normal transport state is mutated.
+- WAN packets without whitelisted addresses are dropped immediately.
+- LAN packets are allowed to traverse all interfaces.
+- LAN packets update the LAN-device and LAN-mentioned whitelists.
+- LAN-connected transport routers are not ordinary endpoint traffic and must not be allowed to reintroduce unbounded WAN routing state through the LAN side.
+- WAN announces are heavily filtered and are never allowed to become an unbounded announce, cache, or rebroadcast workload.
+- Boundary filtering must protect internal heap and watchdog health on ESP32-class devices.
+
+Any change that weakens these rules risks turning the boundary node into an unbounded backbone router, which is not the purpose of this firmware mode.
\ No newline at end of file

diff --git a/crash.log b/crash.log
new file mode 100644
index 0000000..b39de10
--- /dev/null
+++ b/crash.log
@@ -0,0 +1,78 @@
+(.venv) (base) james@MacBook-Air-M1 RTNode-HeltecV4 % pio device monitor
+*****************************************************************************************************
+Obsolete PIO Core v6.1.18 is used (previous was 6.1.19)
+Please remove multiple PIO Cores from a system:
+https://docs.platformio.org/en/latest/core/installation/troubleshooting.html
+*****************************************************************************************************
+--- Terminal on /dev/cu.usbmodem114401 | 115200 8-N-1
+--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
+--- More details at https://bit.ly/pio-monitor-filters
+--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
+[Boundary] Released BT controller memory
+[Boundary] Provisioning check bypassed, modem installed
+[Boundary] Loaded LoRa config from EEPROM
+[Boundary] LoRa: freq=914875000 bw=125000 sf=10 cr=5 txp=28
+00:00:04.059 [---] Initializing filesystem...
+00:00:04.061 [INF] LittleFS mounting filesystem
+00:00:04.068 [DBG] LittleFS filesystem is ready
+00:00:04.070 [---] write_file: writing to file /test
+[ 4074][E][vfs_api.cpp:105] open(): /test does not exist, no permits for creation
+00:00:04.193 [---] write_file: wrote 4 bytes to file /test
+00:00:04.226 [---] remove_file: removing file /test
+00:00:04.232 [---] Finished initializing
+
+00:00:04.234 [---] Registering filesystem...
+00:00:04.235 [---] Registering filesystem...
+00:00:04.235 [---] Listing filesystem...
+00:00:04.236 [---] Finished listing
+00:00:04.237 [---] FILE: destination_table
+00:00:04.238 [---] read_file: reading from file /destination_table
+00:00:04.245 [---] read_file: read 356 bytes from file /destination_table
+00:00:04.247 [---] {"13f4b14dd364a672e853a37fb534678c":{"timestamp":54017.729,"received_from":"13f4b14dd364a672e853a37fb534678c","announce_hops":0,"expires":140406.884,"random_blobs":["8289fd3d3a0069ff6def"],"interface_hash":"4d520f5a502f14f2be77cbc242d2f79f619f42750c3de07c12840d6540627825","packet_hash":"2b2d3642232acf559abc0816bd160dd71239d8e750ffadff315c9435607ec864"},}
+
+Starting RNS...
+15:02:50.617 [INF] Total memory: 323260
+15:02:50.623 [INF] Total flash: 3538944
+15:02:50.624 [INF] Starting Transport...
+15:02:50.625 [INF] Transport starting...
+15:02:50.727 [VRB] Loaded Transport Identity from storage
+15:02:50.729 [INF] Transport mode is enabled
+15:02:51.749 [WRN] Transport::start: removing invalid path to 13f4b14dd364a672e853a37fb534678c due to missing announce packet
+15:02:51.830 [VRB] [LoRa] TX 167 bytes
+15:02:51.831 [NOT] Transport Instance will respond to probe requests on {Destination:6e89720e26d640310bdbce49973720bb}
+15:02:51.833 [VRB] Transport instance {Identity:11a6392444a36824dd8a0e7b9caba59d} started
+15:02:51.854 [VRB] mem_free: 214004 (66%) [0] flash_free: 3522560 (99%) [0] paths: 0 dsts: 3 revr: 0 annc: 0 held: 0
+15:02:51.856 [VRB] preqs: 0 dpreqs: 0 ppreqs: 0 dprt: 0 cdsts: 2 chshs: 2
+15:02:51.857 [VRB] phl: 1 rcp: 0 lt: 0 pl: 0 al: 0 tun: 0
+15:02:51.858 [VRB] bla: 0 bma: 0
+15:02:51.859 [VRB] pin: 0 pout: 1 padd: 0 dpr: 1 ikd: 0 ia: 0
+
+[TcpIF] Server listening on port 4242
+[mDNS] STA up: mynode.local (_reticulum._tcp port 4242)
+15:02:51.876 [VRB] [Advertise] Device advertisement disabled (configure in portal to enable)
+[Boundary] Boot stable — bootloop counter cleared
+15:02:52.477 [VRB] [LoRa] TXSTART 167 bytes
+15:02:58.173 [VRB] [LoRa] RX 51 bytes
+15:02:58.174 [VRB] [PKT] IN iface=Interface[LoRaInterface] sz=51 type=0 ctx=0 hdr=0 dstt=2 hops=1 dst=6b9f6601 tid=none
+15:02:58.176 [VRB] [HEAP-TEL] boundary: -828 bytes (bma=2 phl=1)
+15:02:58.178 [VRB] [PATH] REQ dst=13f4b14d from=Interface[LoRaInterface] local=0 sz=32
+15:02:58.182 [VRB] [LoRa] TX 67 bytes
+15:02:58.185 [VRB] [HEAP-TEL] inbound: -1484 bytes (heap=204200 pin=1 bma=3 phl=3 lt=0 revr=0)
+15:02:58.383 [VRB] [LoRa] TXSTART 67 bytes
+15:03:07.506 [VRB] [LoRa] RX raw-shift fix: prepend 0x00 (hops byte was 19)
+15:03:07.508 [VRB] [LoRa] RX 227 bytes
+15:03:07.509 [VRB] [PKT] IN iface=Interface[LoRaInterface] sz=227 type=0 ctx=0 hdr=0 dstt=0 hops=1 dst=13f4b14d tid=none
+15:03:07.511 [VRB] [HEAP-TEL] boundary: -960 bytes (bma=4 phl=3)
+15:03:07.515 [VRB] [LoRa] TX 67 bytes
+15:03:07.516 [VRB] [HEAP-TEL] inbound: -1164 bytes (heap=203476 pin=2 bma=4 phl=5 lt=0 revr=0)
+15:03:07.714 [VRB] [LoRa] TXSTART 67 bytes
+15:03:10.053 [VRB] [LoRa] RX 51 bytes
+15:03:10.056 [VRB] [PKT] IN iface=Interface[LoRaInterface] sz=51 type=0 ctx=0 hdr=0 dstt=2 hops=1 dst=6b9f6601 tid=none
+15:03:10.057 [VRB] [HEAP-TEL] boundary: -808 bytes (bma=5 phl=5)
+15:03:10.059 [VRB] [PATH] REQ dst=13f4b14d from=Interface[LoRaInterface] local=0 sz=32
+15:03:10.061 [VRB] [HEAP-TEL] inbound: -1012 bytes (heap=203172 pin=3 bma=5 phl=6 lt=0 revr=0)
+15:03:14.124 [VRB] [LoRa] RX 51 bytes
+15:03:14.126 [VRB] [PKT] IN iface=Interface[LoRaInterface] sz=51 type=0 ctx=0 hdr=0 dstt=2 hops=1 dst=6b9f6601 tid=none
+15:03:14.127 [VRB] [HEAP-TEL] boundary: -792 bytes (bma=6 phl=6)
+15:03:14.129 [VRB] [PATH] REQ dst=13f4b14d from=Interface[LoRaInterface] local=0 sz=32
+15:03:14.131 [VRB] [HEAP-TEL] inbound: -996 bytes (heap=202724 pin=4 bma=6 phl=7 lt=0 revr=0)

diff --git a/docs/firmware/v1.0.33/rtnode_heltec_v3.bin b/docs/firmware/v1.0.33/rtnode_heltec_v3.bin
new file mode 100644
index 0000000..097b7a3
Binary files /dev/null and b/docs/firmware/v1.0.33/rtnode_heltec_v3.bin differ

diff --git a/docs/firmware/v1.0.33/rtnode_heltec_v3_merged.bin b/docs/firmware/v1.0.33/rtnode_heltec_v3_merged.bin
new file mode 100644
index 0000000..939d9f7
Binary files /dev/null and b/docs/firmware/v1.0.33/rtnode_heltec_v3_merged.bin differ

diff --git a/docs/firmware/v1.0.33/rtnode_heltec_v4.bin b/docs/firmware/v1.0.33/rtnode_heltec_v4.bin
new file mode 100644
index 0000000..ceac720
Binary files /dev/null and b/docs/firmware/v1.0.33/rtnode_heltec_v4.bin differ

diff --git a/docs/firmware/v1.0.33/rtnode_heltec_v4_merged.bin b/docs/firmware/v1.0.33/rtnode_heltec_v4_merged.bin
new file mode 100644
index 0000000..3f679ef
Binary files /dev/null and b/docs/firmware/v1.0.33/rtnode_heltec_v4_merged.bin differ

diff --git a/docs/firmware/versions.json b/docs/firmware/versions.json
index 44920dc..4eca770 100644
--- a/docs/firmware/versions.json
+++ b/docs/firmware/versions.json
@@ -1,4 +1,17 @@
[
+ {
+ "tag": "v1.0.33",
+ "name": "v1.0.33 Beta \u2014 mixed-path proof routing and harnesses",
+ "stability": "beta",
+ "prerelease": true,
+ "published_at": "2026-05-10T19:41:00Z",
+ "assets": [
+ "rtnode_heltec_v3.bin",
+ "rtnode_heltec_v3_merged.bin",
+ "rtnode_heltec_v4.bin",
+ "rtnode_heltec_v4_merged.bin"
+ ]
+ },
{
"tag": "v1.0.30",
"name": "v1.0.30 \u2014 Heltec V4 boot reliability (DIO image header)",

diff --git a/docs/mirror_releases.py b/docs/mirror_releases.py
index 224d4fa..75b96d8 100644
--- a/docs/mirror_releases.py
+++ b/docs/mirror_releases.py
@@ -48,6 +48,33 @@ FW_DIR = DOCS_DIR / "firmware"
MANIFEST = FW_DIR / "versions.json"
+def load_manifest() -> list[dict]:
+ if not MANIFEST.exists():
+ return []
+
+ try:
+ data = json.loads(MANIFEST.read_text())
+ except (json.JSONDecodeError, OSError):
+ return []
+
+ return [entry for entry in data if isinstance(entry, dict) and entry.get("tag")]
+
+
+def sort_manifest(entries: list[dict]) -> list[dict]:
+ return sorted(
+ entries,
+ key=lambda entry: (entry.get("published_at") or "", entry.get("tag") or ""),
+ reverse=True,
+ )
+
+
+def merge_manifest(existing: list[dict], updates: list[dict]) -> list[dict]:
+ by_tag = {entry["tag"]: entry for entry in existing if entry.get("tag")}
+ for entry in updates:
+ by_tag[entry["tag"]] = entry
+ return sort_manifest(list(by_tag.values()))
+
+
def gh_get(url: str) -> bytes:
req = urllib.request.Request(url, headers={
"Accept": "application/vnd.github+json",
@@ -141,6 +168,10 @@ def main() -> int:
print(f"Mirroring {len(releases)} release(s) into {FW_DIR}")
manifest = mirror(releases)
+ if args.tag:
+ manifest = merge_manifest(load_manifest(), manifest)
+ else:
+ manifest = sort_manifest(manifest)
MANIFEST.parent.mkdir(parents=True, exist_ok=True)
MANIFEST.write_text(json.dumps(manifest, indent=2) + "\n")

diff --git a/issue.txt b/issue.txt
new file mode 100644
index 0000000..eeb6f93
--- /dev/null
+++ b/issue.txt
@@ -0,0 +1,160 @@
+How do I clear the cache?
+no permits for creation
+No interfaces could process
+
+
+02:07:06.140 [VRB] [HEAP-TEL] jobs: 88 bytes (heap=209020)
+02:07:07.637 [VRB] [HEAP-TEL] boundary: -996 bytes (bma=11 phl=6)
+[190424][E][vfs_api.cpp:105] open(): /cache/8c89a7368eddca60374b2f9e11e38100a08d881c81d10d95140f7376d5a0f6ad does not exist, no permits for creation
+02:07:07.822 [VRB] [HEAP-TEL] inbound: -2396 bytes (heap=206036 pin=6 bma=11 phl=7 lt=0 revr=1)
+02:07:08.623 [VRB] [HEAP-TEL] jobs: -1536 bytes (heap=204500)
+02:07:08.625 [ERR] No interfaces could process the outbound packet
+02:07:09.326 [VRB] [HEAP-TEL] boundary: -968 bytes (bma=13 phl=7)
+[192111][E][vfs_api.cpp:105] open(): /cache/d52f0eff20e4961938dde0e14a24053e4450137113303a97a364b8e7a31670e8 does not exist, no permits for creation
+02:07:09.552 [VRB] [HEAP-TEL] inbound: -2092 bytes (heap=203356 pin=7 bma=13 phl=8 lt=0 revr=1)
+
+i have a rnode+Columba < -> [RTNode-HeltecV4] <->rnode+Columba no wifi
+
+
+```
+`[Boundary] Provisioning check bypassed, modem installed
+[Boundary] Loaded LoRa config from EEPROM
+00:00:04.003 [---] Initializing filesystem...
+00:00:04.005 [INF] LittleFS mounting filesystem
+E (3725) esp_littlefs: ./components/esp_littlefs/src/littlefs/lfs.c:1367:error: Corrupted dir pair at {0x0, 0x1}
+
+E (3726) esp_littlefs: mount failed, (-84)
+E (3728) esp_littlefs: Failed to initialize LittleFS
+00:00:04.118 [DBG] LittleFS filesystem is ready
+00:00:04.120 [---] write_file: writing to file /test
+[ 4121][E][vfs_api.cpp:105] open(): /test does not exist, no permits for creation
+00:00:04.135 [---] write_file: wrote 4 bytes to file /test
+00:00:04.138 [---] remove_file: removing file /test
+00:00:04.145 [---] Finished initializing
+
+00:00:04.146 [---] Registering filesystem...
+00:00:04.147 [---] Registering filesystem...
+00:00:04.148 [---] Listing filesystem...
+00:00:04.148 [---] Finished listing
+00:00:04.149 [---] FILE: destination_table
+00:00:04.150 [---] read_file: reading from file /destination_table
+[ 4152][E][vfs_api.cpp:105] open(): /destination_table does not exist, no permits for creation
+00:00:04.161 [ERR] read_file: failed to open input file /destination_table
+Starting RNS...
+[ 4169][E][vfs_api.cpp:105] open(): /time_offset does not exist, no permits for creation
+00:00:04.178 [INF] Total memory: 325516
+00:00:04.180 [INF] Total flash: 3538944
+00:00:04.182 [INF] Starting Transport...
+00:00:04.183 [INF] Transport starting...`
+```
+
+
+Heltec V4.2
+
+```
+Version: v1.0.30
+Mode: Full install (erase all)
+Firmware: firmware/v1.0.30/rtnode_heltec_v4_merged.bin
+Size: 1.332.464 bytes
+Flashing...
+Erasing flash (this may take a while)...
+Chip erase completed successfully in 41.324s
+Not changing the image
+Compressed 1332464 bytes to 797453...
+Writing at 0x0... (2%)
+Writing at 0x13b7a... (4%)
+Writing at 0x1fe4a... (6%)
+Writing at 0x2c7e0... (8%)
+Writing at 0x3714a... (10%)
+Writing at 0x3d998... (12%)
+Writing at 0x4ddec... (14%)
+Writing at 0x558d7... (16%)
+Writing at 0x5b8b1... (18%)
+Writing at 0x61608... (20%)
+Writing at 0x67c15... (22%)
+Writing at 0x6e27b... (24%)
+Writing at 0x7430c... (26%)
+Writing at 0x7a8d8... (28%)
+Writing at 0x81571... (30%)
+Writing at 0x892d0... (32%)
+Writing at 0x8ee6a... (34%)
+Writing at 0x949ec... (36%)
+Writing at 0x9a63d... (38%)
+Writing at 0xa0679... (40%)
+Writing at 0xa64c6... (42%)
+Writing at 0xaba7a... (44%)
+Writing at 0xb13d1... (46%)
+Writing at 0xb65ea... (48%)
+Writing at 0xbb3ec... (51%)
+Writing at 0xc02f0... (53%)
+Writing at 0xc52b8... (55%)
+Writing at 0xca144... (57%)
+Writing at 0xcf319... (59%)
+Writing at 0xd4629... (61%)
+Writing at 0xd92fb... (63%)
+Writing at 0xde38c... (65%)
+Writing at 0xe3bf7... (67%)
+Writing at 0xe9359... (69%)
+Writing at 0xee093... (71%)
+Writing at 0xf3211... (73%)
+Writing at 0xf8125... (75%)
+Writing at 0xfd5b0... (77%)
+Writing at 0x102a33... (79%)
+Writing at 0x108388... (81%)
+Writing at 0x10daa6... (83%)
+Writing at 0x11339f... (85%)
+Writing at 0x118bae... (87%)
+Writing at 0x121092... (89%)
+Writing at 0x1298e9... (91%)
+Writing at 0x12eb1e... (93%)
+Writing at 0x135fd1... (95%)
+Writing at 0x13bc30... (97%)
+Writing at 0x141520... (100%)
+Wrote 1332464 bytes (797453 compressed) at 0x0 in 13.028 seconds.
+Leaving...
+Flash complete. Rebooting...
+```
+```
+
+
+[ERR] No interfaces could process the outbound packet
+ ```
+Loaded LoRa config from EEPROM
+00:00:04.028 [---] Initializing filesystem...
+00:00:04.030 [INF] LittleFS mounting filesystem
+00:00:04.040 [DBG] LittleFS filesystem is ready
+00:00:04.041 [---] write_file: writing to file /test
+[ 4045][E][vfs_api.cpp:105] open(): /test does not exist, no permits for creation
+00:00:04.067 [---] write_file: wrote 4 bytes to file /test
+00:00:04.070 [---] remove_file: removing file /test
+00:00:04.081 [---] Finished initializing
+
+00:00:04.083 [---] Registering filesystem...
+00:00:04.084 [---] Registering filesystem...
+00:00:04.084 [---] Listing filesystem...
+00:00:04.085 [---] Finished listing
+00:00:04.086 [---] FILE: destination_table
+00:00:04.087 [---] read_file: reading from file /destination_table
+00:00:04.124 [---] read_file: read 702 bytes from file /destination_table
+00:00:04.126 [---] {"1141d00aeace3c11ebf59804096adb63":{"timestamp":65.294,"received_from":"1141d00aeace3c11ebf59804096adb63","announce_hops":1,"expires":21665.294,"random_blobs":["6d1db852170069fe485f"],"interface_hash":"337b0aea851f05a0ba0e7c2f9b2fdd1c38b74b2fa290b8ef05b11518a4625485","packet_hash":"d5a39e19947ad0eb054fece03e97fb0ef1739d3e6775730bd132edd02e95da8f"},"3deb567f69a70e08425591308954fdaf":{"timestamp":63.611,"received_from":"3deb567f69a70e08425591308954fdaf","announce_hops":1,"expires":21663.611,"random_blobs":["a3789faa6f0069fe485f"],"interface_hash":"337b0aea851f05a0ba0e7c2f9b2fdd1c38b74b2fa290b8ef05b11518a4625485","packet_hash":"0ba1a65630f432bf0f18010b265a2c23e8ab3778b53d649a4d94c5942da0286e"},}
+
+Starting RNS...
+00:29:19.596 [INF] Total memory: 325484
+ 00:29:19.628 [INF] Total flash: 3538944
+ 00:29:19.629 [INF] Starting Transport...
+ 00:29:19.630 [INF] Transport starting...
+ 00:29:19.808 [VRB] Loaded Transport Identity from storage
+ 00:29:19.811 [INF] Transport mode is enabled
+ 00:29:21.122 [ERR] No interfaces could process the outbound packet
+ 00:29:21.124 [NOT] Transport Instance will respond to probe requests on {Destination:59aeef45f2d73a12feff2ec2acb7160f}
+ 00:29:21.125 [VRB] Transport instance {Identity:1b5b64aa616b619982ef97afbce6de67} started
+ 00:29:21.222 [VRB] mem: 214352 (66%) [0] flash: 3514368 (99%) [0] paths: 2 dsts: 3 revr: 0 annc: 0 held: 0
+ 00:29:21.224 [VRB] preqs: 0 dpreqs: 0 ppreqs: 0 dprt: 0 cdsts: 2 chshs: 2
+ 00:29:21.225 [VRB] phl: 0 rcp: 0 lt: 0 pl: 0 al: 0 tun: 0
+ 00:29:21.226 [VRB] bla: 0 bma: 0
+ 00:29:21.227 [VRB] pin: 0 pout: 1 padd: 0 dpr: 1 ikd: 0 ia: 0
+
+00:29:21.230 [VRB] [Advertise] Device advertisement disabled (configure in portal to enable)
+ [Boundary] Boot stable — bootloop counter cleared
+
+```

Served by rngit 1.5.0 - Generated in 0.08s